package cn.iocoder.yudao.module.wine.controller.app.businessuser.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * @author zyc
 * @createDate 2024/5/26 10:27
 */
@Schema(description = "管理后台 - 商家配置 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppUserAddressRespVO {
    @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1431")
    @ExcelProperty("自增主键")
    private Long id;

    @Schema(description = "商家类型：0--业务代表，1--法人代表", example = "商家类型：0--业务代表，1--法人代表")
    @ExcelProperty("商家类型：0--业务代表，1--法人代表")
    private Integer businessType;

    @Schema(description = "区域ID", example = "区域ID")
    @ExcelProperty("区域ID")
    private Integer areaId;

    @Schema(description = "上级老板用户ID，0--为老板", example = "上级老板用户ID，0--为老板")
    @ExcelProperty("上级老板用户ID，0--为老板")
    private Long parentId;

    @Schema(description = "当前用户ID", example = "当前用户ID")
    @ExcelProperty("当前用户ID")
    private Long userId;

    @Schema(description = "账号类型：0--老板，1--员工", example = "账号类型：0--老板，1--员工")
    @ExcelProperty("账号类型：0--老板，1--员工")
    private Integer userType;

    @Schema(description = "商家信用等级，关联business_credit表信用等级level值", example = "商家信用等级，关联business_credit表信用等级level值")
    @ExcelProperty("商家信用等级，关联business_credit表信用等级level值")
    private Integer creditId;


    @Schema(description = "公司名称", example = "公司名称")
    @ExcelProperty("公司名称")
    private String companyName;

    @Schema(description = "公司地址", example = "公司地址")
    @ExcelProperty("公司地址")
    private String companyAddress;

    @Schema(description = "公司营业执照", example = "公司营业执照")
    @ExcelProperty("公司营业执照")
    private String companyImage;

    @Schema(description = "身份证", example = "身份证")
    @ExcelProperty("身份证")
    private String cardImage;

    @Schema(description = "身份证背面照片", example = "身份证背面照片")
    @ExcelProperty("身份证背面照片")
    private String cardBackImage;

    @Schema(description = "生活合照", example = "生活合照")
    @ExcelProperty("生活合照")
    private String liveImage;

    @Schema(description = "许可证照", example = "许可证照")
    @ExcelProperty("许可证照")
    private String licenseImage;

    @Schema(description = "收货地址", example = "收货地址")
    @ExcelProperty("收货地址")
    private String receiveAddress;

    @Schema(description = "发货地址", example = "发货地址")
    @ExcelProperty("发货地址")
    private String deliveryAddress;

    @Schema(description = "可发布供应条数", example = "可发布供应条数", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("可发布供应条数")
    private Integer supplyNum;

    @Schema(description = "可发布求购条数", example = "可发布求购条数", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("可发布求购条数")
    private Integer buyNum;

    @Schema(description = "可发布投诉条数", example = "可发布投诉条数")
    @ExcelProperty("可发布投诉条数")
    private Integer complainNum;

    @Schema(description = "可发布离职通告条数", example = "可发布离职通告条数")
    @ExcelProperty("可发布离职通告条数")
    private Integer leaveNum;

    @Schema(description = "商家状态：0--刚申请，1--已审核并认证，2--已拒绝", example = "商家状态：0--刚申请，1--已审核并认证，2--已拒绝")
    @ExcelProperty("商家状态：0--刚申请，1--已审核并认证，2--已拒绝")
    private Integer status;

    @Schema(description = "商家认证：0--未认证，1--已认证，2--认证失效", example = "商家认证：0--未认证，1--已认证，2--认证失效")
    @ExcelProperty("商家认证：0--未认证，1--已认证，2--认证失效")
    private Integer isAuth;

    @Schema(description = "是否开启相关功能", example = "是否开启相关功能")
    @ExcelProperty("是否开启相关功能")
    private Integer isOpen;

    @Schema(description = "信用分", example = "信用分")
    @ExcelProperty("信用分")
    private Integer creditScore;;

    @Schema(description = "是否平台自营 1是2否", example = "是否平台自营 1是2否")
    @ExcelProperty("是否平台自营 1是2否")
    private Integer isSelfSupport ;
    /**
     * 保证金内容：5W保证金
     */
    @Schema(description = "保证金内容")
    @ExcelProperty("保证金内容")
    private  String bondName;

    @Schema(description = "认证时间", example = "认证时间")
    @ExcelProperty("认证时间")
    private LocalDateTime authTime;

    @Schema(description = "有效时间", example = "有效时间")
    @ExcelProperty("有效时间")
    private LocalDateTime overTime;

    @Schema(description = "创建时间", example = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "信用等级名称", example = "信用等级名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("信用等级名称")
    private String creditName;

    @Schema(description = "地区名称", example = "地区名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("地区名称")
    private String areaName;

    @Schema(description = "会员类型id", example = "会员类型id", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("会员类型id")
    private Long memberTypeId;

    @Schema(description = "是否团长", example = "是否团长", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否团长")
    private Integer isTeam;

    @Schema(description = "商家开通时间", example = "商家开通时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("商家开通时间")
    private LocalDateTime openTime;

    @Schema(description = "商家免费时间", example = "商家免费时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("商家免费时间")
    private LocalDateTime expirationTime;

    @Schema(description = "用户电话", example = "用户电话", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("用户电话")
    private String mobile;

    @Schema(description = "用户昵称", example = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("用户昵称")
    private String nickname;

    @Schema(description = "真实姓名", example = "真实姓名", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("真实姓名")
    private String realName;

    /**
     * 会员功能模块，逗号隔开
     */
    @Schema(description = "会员功能模块", example = "会员功能模块", requiredMode = Schema.RequiredMode.REQUIRED)
    private String modular;

    /**
     * 系统上线是否开启权限功能
     */
    @Schema(description = "开启权限功能", example = "开启权限功能", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer isOpenUse;

    /**
     * 关闭时间
     */
    @Schema(description = "关闭时间", example = "关闭时间")
    private LocalDateTime closeTime;

    /**
     * 新商家是否开启体验
     */
    @Schema(description = "新商家是否开启体验", example = "新商家是否开启体验")
    private Integer isOpenMonth;
    /**
     * 新商家开启体验月数
     */
    @Schema(description = "新商家开启体验月数", example = "新商家开启体验月数")
    private Integer freeMonth;


    @Schema(description = "团长缴费过期时间", example = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("过期时间")
    private LocalDateTime teamOverTime;

    @Schema(description = "使用权限的真正权限")
    private Integer creditTrueId;
}
